.\" Hey Emacs! This file is -*- nroff -*- source.
.\"
.\" Author: Eamon Walsh (ewalsh@tycho.nsa.gov) 2007
.TH "selabel_x" "5" "29 ноября 2011" "Security Enhanced Linux" "Документация API SELinux"
.SH "ИМЯ"
selabel_x \- интерфейс проставления меток SELinux в пространстве пользователя и формат файла конфигурации для внутренней службы контекстов оконной системы X Window System. Эта внутренняя служба также используется для определения контекста по умолчанию, который следует присвоить подключённым удалённо клиентам X
.
.SH "ОБЗОР"
.B #include <selinux/label.h>
.sp
.BI "int selabel_lookup(struct selabel_handle *" hnd ,
.in +\w'int selabel_lookup('u
.BI "char **" context ,
.br
.BI "const char *" object_name ", int " object_type ");"
.in
.sp
.BI "int selabel_lookup_raw(struct selabel_handle *" hnd ,
.in +\w'int selabel_lookup('u
.BI "char **" context ,
.br
.BI "const char *" object_name ", int " object_type ");"
.
.SH "ОПИСАНИЕ"
Внутренняя служба контекстов X сопоставляет имена объектов X Window System с контекстами безопасности. Это действие служит для нахождения правильного контекста для объектов X Window System, значимость и/или семантика использования которых в основном определяются именем. Необходимо освободить возвращённый \fIcontext\fR с помощью \fBfreecon\fR(3).
.br
\fBselabel_lookup\fR(3) описывает функцию с её возвращаемыми значениями и кодами ошибок.
.sp
Эта внутренняя служба также используется для определения контекста по умолчанию, который следует назначить для подключённых удалённо клиентов X.
.sp
Для аргумента \fIobject_type\fR необходимо установить одно из следующих значений:
.RS
.TP
.B SELABEL_X_PROP
Аргумент
.I object_name
указывает имя свойства окна, например, "WM_NAME".
.TP
.B SELABEL_X_SELN
Аргумент
.I object_name
указывает имя выделения, например, "PRIMARY".
.TP
.B SELABEL_X_EXT
Аргумент
.I object_name
указывает имя расширения протокола, например, "RENDER".
.TP
.B SELABEL_X_EVENT
Аргумент
.I object_name
указывает имя типа события, например, "X11:ButtonPress".
.TP
.B SELABEL_X_CLIENT
Аргумент
.I object_name
игнорируется, но его значением необходимо установить либо \fI*\fR (звёздочка, 'подстановочный знак': будет выбрана запись по умолчанию), либо конкретную запись, такую как "remote" в файле контекстов X, как показано в разделе \fBПРИМЕР\fR. В этом случае будет возвращён контекст по умолчанию, который следует присвоить удалённым клиентам X.
.TP
.B SELABEL_X_POLYPROP
Работает аналогично
.BR SELABEL_X_PROP ,
но проверяет, было ли свойство отмечено как многоэкземплярное. См. \fBПРИМЕЧАНИЯ\fR далее.
.TP
.B SELABEL_X_POLYSELN
Аналогично
.BR SELABEL_X_SELN ,
но проверяет, было ли выделение отмечено как многоэкземплярное. См. \fBПРИМЕЧАНИЯ\fR далее.
.RE
.sp
Все сообщения, созданные \fBselabel_lookup\fR(3), по умолчанию отправляются в \fIstderr\fR. Это поведение можно изменить с помощью \fBselinux_set_callback\fR(3).
.sp
.B selabel_lookup_raw
работает аналогично \fBselabel_lookup\fR, но не выполняет преобразование контекста.
.sp
В разделе \fBФАЙЛЫ\fR приводится описание файлов конфигурации, которые используются для определения контекстов объектов Х.
.
.SH "ПАРАМЕТРЫ"
Помимо глобальных параметров, описание которых приведено в \fBselabel_open\fR(3), эта внутренняя служба распознаёт следующие параметры:
.RS
.TP
.B SELABEL_OPT_PATH
Значение этого параметра, отличное от null, определяет путь к файлу, который будет открыт вместо стандартного файла контекстов Х (подробные сведения см. в разделе \fBФАЙЛЫ\fR).
.RE
.
.SH "ФАЙЛЫ"
То, какой файл контекста Х будет использоваться для получения контекста по умолчанию, зависит от параметра \fBSELABEL_OPT_PATH\fR, переданного в \fBselabel_open\fR(3). Если \fINULL\fR, то значением \fBSELABEL_OPT_PATH\fR по умолчанию станет расположение контекстов Х активной политики (возвращённое \fBselinux_x_context_path\fR(3)). В ином случае будет использовано фактическое указанное значение \fBSELABEL_OPT_PATH\fR.
.sp
Файл контекстов объектов Х по умолчанию:
.RS
.I /etc/selinux/{SELINUXTYPE}/contexts/x_contexts
.RE
.sp
Где \fI{SELINUXTYPE}\fR - запись из файла конфигурации selinux \fIconfig\fR (см. \fBselinux_config\fR(5)).
.sp
Записи, находящиеся внутри файла контекстов X, показаны в разделах \fBЗначения строки имени объекта\fR и \fBФОРМАТ ФАЙЛА\fR.
.
.SH "Значения строки имени объекта"
Имена строк, назначенные аргументам \fIobject_type\fR, которые могут присутствовать в файле контекстов X:
.TS
center, allbox, tab(@);
lI lB
lB l .
object_type@Текстовое имя
SELABEL_X_PROP@property
SELABEL_X_SELN@selection
SELABEL_X_EXT@extension
SELABEL_X_EVENT@event
SELABEL_X_CLIENT@client
SELABEL_X_POLYPROP@poly_property
SELABEL_X_POLYSELN@poly_selection
.TE
.
.SH "ФОРМАТ ФАЙЛА"
Каждая строка внутри файла контекстов X имеет следующий вид:
.RS
.I object_type object_name context
.RE
.sp
Где:
.RS
.I object_type
.RS
Это строковое представление типа объекта, показанное в разделе \fBЗначения строки имени объекта\fR.
Несколько строк с одной и той же строкой \fIobject_type\fR сформируют блок записей (каждая со своей строкой \fIobject_name\fR).
.RE
.I object_name
.RS
Это имена объектов конкретного ресурса сервера X, например,
\fBPRIMARY\fR, \fBCUT_BUFFER0\fR и т.д. Обычно они определены в исходном коде сервера  X (\fIprotocol.txt\fR и \fIBuiltInAtoms\fR в каталоге
dix исходного пакета xorg\-server).
Запись может содержать подстановочные знаки '*' или '?' для выполнения сопоставления с дополнением или подстановкой.
Следует учитывать, что при использовании '*' важен порядок записей в файле. '*' в отдельном виде используется для того, чтобы обеспечить назначение резервного контекста по умолчанию, это должна быть последняя запись в блоке \fIobject_type\fR.
.RE
.I context
.RS
Контекст безопасности, который будет применён к объекту.
.RE
.RE
.sp
Пример 1:
.sp
.nf
# object_type  object_name  context
selection      PRIMARY      system_u:object_r:clipboard_xselection_t:s0
selection      *            system_u:object_r:xselection_t:s0
.fi
.sp
Пример 2 - этот пример показывает, как можно настроить запись клиента таким образом, чтобы она всегда находилась:
.sp
.nf
# object_type  object_name  context
client         *            system_u:object_r:remote_t:s0
.fi
.
.SH "ПРИМЕЧАНИЯ"
.IP "1." 4
Свойства и выделения отмечаются как многоэкземплярные или нет. Для этих типов имён параметр "POLY" выполняет поиск только имён, которые отмечены как многоэкземплярные, в то время как другой параметр выполняет поиск только имён, которые отмечены как не многоэкземплярные. Пользователям этого интерфейса следует проверить оба сопоставления и затем (необязательно) действовать на основе полученного результата (например, сделать объект многоэкземплярным).
.IP "2." 4
Если контексты должны быть проверены, необходимо указать глобальный параметр  \fBSELABEL_OPT_VALIDATE\fR перед вызовом \fBselabel_open\fR(3). Если этот параметр не указан, может быть возвращён недействительный контекст.
.
.SH "СМОТРИТЕ ТАКЖЕ"
.ad l
.nh
.BR selinux "(8), " selabel_open "(3), " selabel_lookup "(3), " selabel_stats "(3), " selabel_close "(3), " selinux_set_callback "(3), " selinux_x_context_path "(3), " freecon "(3), " selinux_config "(5) "


.SH АВТОРЫ
Перевод на русский язык выполнила Герасименко Олеся <gammaray@basealt.ru>.
